package com.ftg.learn.chapter10;

import java.util.Arrays;

public class Demo1 {
    /**
     * 定义一个5个元素组成的一维数组，对其进行赋值 ，再把该值输出来。
     * 定义一个5个元素组成的一维数组，对其赋值，再把该数组反向输出。
     */
    public void yi(){
        int[] arr1 = new int[5];
        for(int i = 0;i<arr1.length;i++){
            arr1[i] = i;
        }
        System.out.println(Arrays.toString(arr1));
        //反向
        for(int i = arr1.length-1;i>=0;i--){
            System.out.print(arr1[i]+"\t");;
        }
        //换行
        System.out.println();
    }

    /**
     *定义一个10个元素组成的一维数组，
     * 求该数组中的最大值和最小值。及最大值和最小值的平均值 。
     */
    public void er(int[] arr){
        int max = max1(arr);
        int min = min1(arr);
        double avg = maxMinAvg(arr);
        System.out.println("最大值："+max+"\t最小值："+min+"\t最大值和最小值的平均值："+avg);
    }

    //最大值
    private  int max1(int[] arr){
        int max = arr[0];
        for(int i = 0;i<arr.length; i++){
            if(max < arr[i]){
                max = arr[i];
            }
        }
        return max;
    }

    //最小值
    private int min1(int[] arr){
        int min = arr[0];
        for(int i = 0;i<arr.length; i++){
            if(min > arr[i]){
                min = arr[i];
            }
        }
        return min;
    }

    //最大值和最小值的平均值
    private  double maxMinAvg(int[] arr){
        int avg = (max1(arr) + min1(arr))/2;
        return avg;
    }

    //总和
    private int sum(int[] arr){
        int sum = 0;
        for(int i =0;i< arr.length;i++){
            sum += arr[i];
        }
        return sum;
    }

    //平均值
    private double avg(int[] arr){
        int avg = sum(arr);
        return avg/arr.length;
    }

    /**
     * 定义一个10个元素组成的一维数组，求该数组中的最大值，以及最大值在该数组中的位置。
     */
    public void san(int[] arr){
        System.out.println("最大值"+max1(arr));
        System.out.println("最大值的位置"+maxIndex(arr));
    }

    //最大值在该数组中的位置。
    private int maxIndex(int[] arr){
        int max = arr[0],index = 0;
        for(int i = 0;i<arr.length; i++){
            if(max < arr[i]){
                max = arr[i];
                index = i;
            }
        }
        return index;
    }


    /**
     * 在一个由5个元素组成的一维数组中 查找一个数字‘5’，
     * 如果该有数组中有此元素，由提示“数字5在此数组中”。
     */
    public void si(int[] arr){
        for(int i = 0;i< arr.length;i++){
            if(arr[i] == 5){
                System.out.println("数字5在此数组中");;
                break;
            }
        }
    }

    /***
     * 在一个由5个元素组成的一维数组中,查找一个已经定义好的数字，
     * 如果该有数组中有此元素，由提示“此数组中有***数字”，
     * 如果此数组中没有则提示“该数字不在此数组中”
     */
    public void wu(int[] arr,int num){
        boolean b = false;
        for(int i = 0;i< arr.length;i++){
            if(arr[i] == num){
                System.out.println("数字"+num+"在此数组中");
                b = true;
                break;
            }
        }
        if(b == false) {
            System.out.println("数字" + num + "不在此数组中");
        }

    }

    /**
     *  7求一个由10个元素组成的一维数组中，所有元素的平均值
     */
    public void liu(int[] arr){
        System.out.println("数组的和为："+sum(arr));
        System.out.println("数组的平均值为："+avg(arr));
    }
}
